import { renderColumnNum } from '@/components/zw/select-colunm-dialog/colunm-number-utils';

/**
 * 保留小数点
 * @param {*} money 金额
 * @param {*} decimals 保留几位小数
 * @returns eg: 1.12
 */
const formatToFixed = (money, decimals = 2) => {
    return (Math.round((parseFloat(money) + Number.EPSILON) * Math.pow(10, decimals)) / Math.pow(10, decimals)).toFixed(
        decimals
    );
};

/**
 * 格式化金额
 * @param {*} money 金额
 * @param {*} symbol ¥
 * @param {*} decimals 小数点位
 * @returns 格式化后的金额
 */
export const formatMoney = (money, symbol = '', decimals = 2) => {
    const { num } = renderColumnNum(money);
    const fmtMoney = `${symbol}${parseFloat(formatToFixed(num, decimals)).toLocaleString()}`;
    return fmtMoney;
};

/**
 * 格式化金额
 * @param {*} money 金额
 * @param {*} symbol ¥
 * @param {*} decimals 小数点位
 * @returns 格式化后的金额不带单位 万、亿
 */
export const formatMoneyNoUnit = (money, symbol = '', decimals = 2) => {
    if (['', null, undefined].includes(money)) return '--';
    return `${symbol}${parseFloat(formatToFixed(money, decimals)).toLocaleString()}`;
};
